|##########|
|#MAGIC   #|BOPDNOGO
|#PROJECT #|""
|#PATHS   #|"EGSProject"
|#FLAGS   #|xx---x--x----xx-----------------
|#USERSW  #|--------------------------------
|#USERMASK#|--------------------------------
|#SWITCHES#|x----xxxxx-xx---
|##########|
DEFINITION MODULE Render;

FROM EGS        IMPORT CLUEntry,EBitMapPtr;
FROM EGSGfx     IMPORT RastPortPtr;
FROM EGSGadBox  IMPORT ResBox;

TYPE
  FuncParams = RECORD
                 funcStr : STRING(202);
                 minX,
                 maxX,
                 minY,
                 maxY,
                 minZ,
                 maxZ    : LONGREAL;
               END;
  DrawModes  = (wire,solid,shaded,traced);
  LightDirs  = (top,front,left,right);
  Pitch      = [0..90];
  Bearing    = [-90..90];
  DrawParams = RECORD
                 mode         : DrawModes;
                 light        : LightDirs;
                 outlined     : BOOLEAN;
                 mirror       : BOOLEAN;
                 specular     : BOOLEAN;
                 shadows      : BOOLEAN;
                 resolution   : INTEGER;
                 fColor,
                 bColor       : CLUEntry;
                 fPen,
                 bPen         : LONGCARD;
                 pitch        : Pitch;
                 bearing      : Bearing;
                 renderMap    : EBitMapPtr;
               END;

  Break      = PROCEDURE():BOOLEAN;

PROCEDURE CheckFunction(REF str : STRING):INTEGER;


PROCEDURE RenderFunction(    rast   : RastPortPtr;
                         REF area   : ResBox;
                         REF func   : FuncParams;
                         REF draw   : DrawParams;
                             break  : Break);


PROCEDURE AxisMove(    rast    : RastPortPtr;
                   REF area    : ResBox;
                   VAR draw    : DrawParams;
                       pitch   : Pitch;
                       bearing : Bearing);

END Render.
